package com.sh.data.engine.application.model.request.datadev;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;

@Data
@Schema
public class OfflineDevTaskAlarmRequest {

    private Long id;

    /**
     * 监控主题 0-工作流程 1-数据质量 2-数据同步离线任务 3-数据同步实时任务 4-实时开发任务
     */
    @Schema(description = "监控主题 0-工作流程 1-数据质量 2-数据同步离线任务 3-数据同步实时任务 4-实时开发任务")
    private Integer subjectType;

    /**
     * 任务id
     */
    @Schema(description = "任务Id")
    private Long nodeId;

    /**
     * 监控的表Id
     */
    @Schema(description = "监控的表Id")
    private Long tblId;

    /**
     * 接受者id
     */
    @Schema(description = "接受者用户id")
    private Long receiverId;

    /**
     * 接受者用户名
     */
    @Schema(description = "授权者用户username")
    private String receiverUsername;

    /**
     * 监控开关 0-关闭 1-开启
     */
    @Schema(description = "监控开关 0-关闭 1-开启")
    private Integer isOff;

    /**
     * 报警原因 参考：TaskAlarmTypeEnum
     */
    @Schema(
        description = "报警类型 0-失败 1-完成 2-运行超时 3-未完成 4-sql语句出错 5-数据质量问题 6-停止 7异常 8-延时 9-同步失败条数 10-资源超过阈值")
    private Integer alarmType;

    /**
     * 运行超时时间 单位：分钟
     */
    @Schema(description = "运行超时时间 单位：分钟 ")
    private BigDecimal timeOut;

    /**
     * 未完成时间的小时
     */
    @Schema(description = "未完成时间的小时")
    private Integer timeHour;

    /**
     * 未完成时间的分钟
     */
    @Schema(description = "未完成时间的分钟")
    private Integer timeMin;

    /**
     * 延时
     */
    @Schema(description = "延时")
    private Integer delay;

    /**
     * 失败条数
     */
    @Schema(description = "失败条数")
    private Integer failNum;

    @Schema(description = "资源阈值")
    private BigDecimal resourceThreshold;

    @Schema(description = "0-不打断任务 1-打断")
    private Integer breakTask;

    /**
     * 接受方式 0-邮件
     */
    @Schema(description = "0-邮件")
    private Integer receiveType;

    @Schema(description = "0-邮件")
    private String tableName;
}
